/************************个人信息管理模块**************************/
function selfMgrFn (node, event) {
   	if (node.isLeaf()) {		//判断点击的是树的叶子节点
    	event.stopEvent();
    	
    	//获取点击的菜单项的id
       	var node_id = node.id;
       	//获取被点击的菜单项的text
       	var node_text = node.text;
   		
       	if (node_id == 'own_info') {			//管理个人信息
       		//从TabPanel获取此id的对象，看看tab是否已经打开
			var tab = Ext.getCmp("center_part").getComponent(node_id);		         	
			
			if (!tab) {				//如果没有打开
				
				//显示等待保存的提示信息
        		Ext.MessageBox.show({
        				title: '请等待',
                        msg: '正在加载，请稍等...',
                        progress: true,								        
				        width: 260,
				        wait:true,
				        icon: 'mb_download_icon',
				        animEl: 'saving',
				        waitConfig: {
				        	interval: 200,  //interval进度的频率
				        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
							fn: function(){	//时间到后执行
                             	Ext.MessageBox.hide();	//让进度条消失
                            }
				        }
                });
				
				/*****************表格定义*********************/
				//表格列样式
				var mgr_columns = new Ext.grid.ColumnModel([
					new Ext.grid.RowNumberer(),
					//添加复选功能（即SelectionModel对象）
					{header: '编号', dataIndex: 'id'},
					{header: '姓名', dataIndex: 'name'},
					{header: '性别', dataIndex: 'sex', renderer: sexRenderer},
					{header: '登陆账号', dataIndex: 'nickname'},
					{header: '密码', dataIndex: 'password'}
				]);
				mgr_columns.defaultSortable = false;		
								
				//表格数据格式
				var managerRecord = Ext.data.Record.create([
					{name: 'id', type: 'int'},
					{name: 'name', type: 'string'},
					{name: 'sex', type: 'string'},
					{name: 'nickname', type: 'string'},
					{name: 'password', type: 'string'}
				]);
				
				//到后台获取数据库中的数据,用于填充表格
				var mgr_store = new Ext.data.Store({
					proxy: new Ext.data.HttpProxy({url: 'mgr_self.do?cmd=show'}),
					reader: new Ext.data.JsonReader({
						root: 'root'
					}, managerRecord),
					remoteSort: true
				});
				//加载数据，并发送参数到服务器端
				mgr_store.load();		
				//表格定义
				var mgr_grid = new Ext.grid.GridPanel({
					//遮罩提示功能
					loadMask: true,
					store: mgr_store,
					cm: mgr_columns,
					//使得表格强制fit父容器
					viewConfig: {
						forceFit: true
					}
				});
				/*****************表格定义结束*********************/
				
				/***************添加此表格到TabPanel***************/
				tab = Ext.getCmp("center_part").add({
					//使用点击菜单的id，这样方便事件处理
					id: node_id,
					//标题为被点击的菜单项的text
					title: node_text,
					closable:true,
					iconCls: 'nor_icon',
					autoScroll:true,
					layout: 'fit',
					items: [mgr_grid]
				});		  
				/***************添加此表格到TabPanel结束***************/									
			}						
			//设置此新增Tab为活动的Tab
			Ext.getCmp("center_part").setActiveTab(tab);
			
       	} else if (node_id == 'modify_info') {	  
       	
       		//看看弹出窗口是否存在，已经渲染，没有就创建
       		var manager_win = Ext.getCmp("manager_win");
       		if (!manager_win) {
           		/********修改个人信息的弹出窗口**********/															
				//创建表单
				var managerForm = new Ext.form.FormPanel({
					url: 'mgr_self.do?cmd=modify',
					id: 'managerForm',
					labelAlign: 'right',
					labelWidth: 80,
					frame: true,
					defaultType: 'textfield',						        
					items: [{
						//保存个人id的隐藏域，用于修改个人信息用
						xtype: 'hidden',
						name: 'id'
					}, {
						xtype: 'fieldset',
						title: '基本信息',
						autoHeight: true,
						defaultType: 'textfield',
						//统一设置宽度和验证
						defaults: {
							width: 170,
							//不为空
							allowBlank: false
						},									
						items: [{
							fieldLabel: '姓名',
							name: 'name',
							//最大长度
							maxLength: 4,
							//最小长度
							minLength: 2,
							//只能输入汉字（使用自定义的验证）
							regex: /^[\u4E00-\u9FA5]+$/,
							regexText: '只能输入汉字'
						},{
							fieldLabel: '性别',
							name: 'sex',
							//最大长度
							maxLength: 1,
							//只能输入汉字（使用自定义的验证）
							regex: /^[男|女]/,
							regexText: '只能输入男或女'
						},{
							fieldLabel: '登陆账号',
							name: 'nickname',
							//最大长度
							maxLength: 11,
							//最小长度
							minLength: 4,
							//只能输入字母和数字
							vtype: 'alphanum'
						},{
							fieldLabel: '密码',
							name: 'password',
							//最大长度
							maxLength: 12,
							//最小长度
							minLength: 4,
							//只能输入字母和数字
							vtype: 'alphanum'
						}]						     
					}]							        
				});
				//定义弹出窗口
				manager_win = new Ext.Window({
					id: 'manager_win',
					title: '修改个人信息',
					width:350,
					height:220,
					//设置当点击X按钮时候，是隐藏还是销毁
					closeAction:'hide',
					//不允许超出浏览器范围
					constrain: true,
					//开启蒙板效果
					modal: true,
					buttonAlign: 'center',
					items: [managerForm],
					buttons: [{
						text:'修改',
						iconCls: 'submit_icon',
						//提交表单
						handler: function () {
							//如果表单验证成功，则显示保存的等待，和提交form
				       		if (managerForm.getForm().isValid()) {
				       			//提交表单
								managerForm.getForm().submit({											
									success: function (managerForm, action) {
										Ext.Msg.alert("操作结果", action.result.msg, function(btn) {
											if (btn == 'ok') {
												//重置managerForm中的数据
												managerForm.reset();
												//关闭窗口（隐藏）
												manager_win.hide();
												//登出，让用户重新登陆
												top.window.location.href='loginOut.do';
											}
										});												
									},
									failure: function (managerForm, action) {
										Ext.Msg.alert("操作结果", action.result.msg);
									}
								});
								//显示等待保存的提示信息
				        		Ext.MessageBox.show({
				        				title: '请等待',
	                                    msg: '正在保存，请稍等...',
	                                    progress: true,								        
								        width: 240,
								        wait:true,
								        icon: 'mb_waiting_icon',
								        animEl: 'saving',
								        waitConfig: {
								        	interval: 200,  //interval进度的频率
								        	duration: 1000,	//执行进度的持续时间，超过这个时间后，interval失效，不再产生进度效果，但进度框也不会消失。
											fn: function(){	//时间到后执行
			                                 	Ext.MessageBox.hide();	//让进度条消失
			                                }
								        }
	                            });									
				       		}
						}						       	 	
					}, {
						text:'重置',
						iconCls: 'reset_icon',
						handler: function () {
							managerForm.getForm().reset();
						}	
					}, {
						text:'取消',
						iconCls: 'revoke_icon',
						handler: function () {
							manager_win.hide();
						}	
					}]
				});
				/******************弹出窗口结束*****************/     
			}    	
       		//显示弹出窗口，修改信息		           		
			manager_win.show(); 
			//到后台获取数据
			Ext.Ajax.request({
				url: 'mgr_self.do?cmd=get',
				success: function(response) {
					var obj = Ext.decode(response.responseText);
					if (typeof(obj) != 'undefined') {
						//填充到form中
						Ext.getCmp("managerForm").getForm().setValues({
							id: obj.id,
							name: obj.name,
							sex: obj.sex,
							nickname: obj.nickname,
							password: obj.password
						});
					} else {
						Ext.Msg.alert("提示信息", "抱歉，读取个人信息失败！");
					}								
				},
				failure: function() {
					Ext.Msg.alert("提示信息", "抱歉，读取个人信息失败！");
				}	
			});      		
       	}
  	}
}
    /**********************个人信息管理模块结束************************/